package org.dromara.run.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.run.domain.Application;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 免跑申请表视图对象 phy_run_application
 *
 * @author Lion Li
 * @date 2024-08-30
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Application.class)
public class ApplicationVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 免测的唯一标识
     */
    @ExcelProperty(value = "免测的唯一标识")
    private Long applicationId;

    /**
     * 学生id，关联学生表
     */
    @ExcelProperty(value = "学生id，关联学生表")
    private String memberId;

    /**
     * 阳光跑计划id，关联阳光跑计划表
     */
    @ExcelProperty(value = "阳光跑计划id，关联阳光跑计划表")
    private String scheduleId;

    @Translation(type = TransConstant.SCHEDULE_ID_TO_NAME, mapper = "scheduleId")
    private String scheduleName;

    /**
     * 免测原因
     */
    @ExcelProperty(value = "免测原因")
    private String reason;

    /**
     * 附件路径
     */
    @ExcelProperty(value = "附件路径")
    private String filePath;

    /**
     * 0:待审核，1:通过，2:不通过
     */
    @ExcelProperty(value = "0:待审核，1:通过，2:不通过")
    private String approveStatus;

    /**
     * 审批日期
     */
    @ExcelProperty(value = "审批日期")
    private Date approveDate;

    /**
     * 审批人，存放id
     */
    @ExcelProperty(value = "审批人，存放id")
    private String approver;

    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "approver")
    private String approverName;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    private String tenantId;
    private String studentName;
    private String years;
    private String className;
    private String classId;
    private String deptId;
    private String gender;
    private String professionalId;
    private String collegeId;
    private String professionalName;
    private String collegeName;
}
